﻿package com.obas.type
{
	import com.ease.common.enums.ValuableEnum;
	import com.ease.lang.Enum;
	import com.ease.lang.EnumConstants;
	import com.obas.type.PortFeatureType;

	[Bindable]
	[RemoteClass(alias="com.obas.type.PortFeatureType")]

	public class PortFeatureType extends Enum
	{
		/* static init */
		{ initEnum(PortFeatureType); }

		/* Constants */
		public static const EPON:PortFeatureType = new PortFeatureType("EPON", 1, "Ethernet passive optical network (EPON)");
		public static const GPON:PortFeatureType = new PortFeatureType("GPON", 2, "Gigabit passive optical network. (GPON)");
		public static const ETHERNET:PortFeatureType = new PortFeatureType("ETHERNET", 3, "Point-to-point Ethernet (P2P Eth)");

		private var _value:int;
		private var _description:String;

		/*public*/ function PortFeatureType(name:String=null ,value:int=0 ,description:String=null) {
			super.name = name;
			this._value = value;
			this._description = description;
		}

		public function get value():int  { return this._value; }
		public function get description():String  { return this._description; }

		/* constant query */
		public static function getEnumConstants():Array {
			return Enum.getEnumConstants(PortFeatureType);
		}

		public static function get(constantName:String, caseSensitive:Boolean = false):PortFeatureType {
			return PortFeatureType(Enum.get(PortFeatureType, constantName, caseSensitive));
		}
	}
}